n進数の考え方について整理してみる
こんにちは、AWS営業部の洲崎です!
今回はAWSではありませんが、基本情報技術者試験で王道なn進数について整理していこうと思います。
基礎な考えですが、何度か混乱してしまったので本ブログで整理していきます。
n進数とは
n進数とは、数の数え方になります。
通常、私達は10進数と呼ばれる考え方で生活しています。
10進数というのは、0,1,2,3....9,10になった時に桁が上がることです。
よくお金を数える時に10円、100円と数えますが、これは10進数の考え方になります。
これが2進数という考え方になると0,1,10と、0と1の二種類で桁が上がります。
0か1の世界、0110101010...等デジタルな世界では2進数が基本となります。
また、16進数というワードも耳にしたことがある方もいると思います。
16進数は1,2,3...9,A,B....F,10と16のタイミングで10になる考え方になります。
基本情報の試験ではn進数⇒n進数に変換する考えを持つことが必要になります。
早速練習問題も兼ねて考えてみます。
①n進数から10進数
では早速考えてみましょう。
まず、10進数にする考え方として、桁が上がることにn+1乗することで計算が出来ます。
例えば2進数の1100100を10進数で考えてみます。
1×2の6乗+1×2の5乗+0×2の4乗+0×2の3乗+1×2の2乗+0×2の1乗+0×2の0乗で計算します。
64+32+0+0+4+0+0=100となります。
なので、2進数の1100100は10進数の100になります。
なぜそういう考えになるかは、すでに10進数の数字を紐どいてみましょう。
例えばすでに10進数である100がなぜ10進数になっているかを紐解きます。
10進数はお金の数え方と同じで、1桁に10個集まると位が1つ上がります。
その為、下記表の形で考えてみましょう。
10*2乗 | 1 |
10*1乗 | 0 |
10*0乗 | 0 |
この表を計算してみると、10の2乗×1+10の1乗×0+10の0乗×0で計算することになります。
つまり、100+0+0となり、100になります。
なので、n進数はn+1乗していけば10進数になるということです。
今回、2進数と10進数で考えてみましたが、6進数⇒10進数だと以下の場合になります。
542の6進数を10進数に考える場合は
5×6の2乗+4×6の1乗+2×6の0乗
180+24+2=206となります。
②10進数からn進数
次に10進数からn進数に変換する際を整理してみます。
10進数からn進数はnの数字でどんどん割っていく事で回答可能です。
たとえば10進数の100を2進数に変えようと思います。
今回はnが2なので、2で100を割っていきましょう。
2)100
2)50....0
2)25....0
2)12....1
2)6......0
2)3......1
1
となり、下から余った数字を読んでいくと1100100になります。
①で計算した通り100の2進数になりますね。
これは①の逆を行うので、nで割って余りを読むことで回答が可能です。
試しに10進数の1000を5進数に変えてみます。
5)1000
5)200...0
5)40.....0
5)8......0
5)1......3
下から余りを読んで、13000となります。
③n進数からn進数
これは①と②の組み合わせを行うことで可能です。
流れとしてはn進数⇒10進数に直してから、10進数⇒n進数に直す形です。
例えば1100の2進数を5進数に直してみましょう。
1000の2進数を10進数に計算する時は
1×2の3乗+1×2の2乗+0×2の1乗+0×2の0乗=
8+4+0+0で12になります。
10進数の12を5進数に直すと
5)12
5)2...2
答えは22ですね。
その為、1100の2進数を5進数に直す答えは22になります。
まとめ
いかがだったでしょうか。
学校で習った覚えがあるはずなのですが大人になってすっぽり抜けたのでいい勉強になりました。
基本情報で一番初めの壁となると思うので、何度か解いてしっかり計算方法を理解しておきたいですね。
また本件とは関係ありませんが、AWS/モバイルアプリ/ビックデータ分析等相談毎があれば、
お気軽に問い合わせ頂けますと幸いです。
ではまた!AWS営業部の洲崎でした。